package com.gimi.cloud.bbp.manage.service.sys;

import com.gimi.cloud.bbp.dto.sys.SysMenuDTO;
import com.gimi.cloud.bbp.manage.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 系统菜单相关接口
 * @author wbj
 * @version 1.0
 * @Description
 * @create 2018-01-24
 **/
public interface SysMenuService extends BaseService<SysMenuDTO>{
    /**
     * 把传入的菜单转化为tree
     * @param menuDTOS 待转化的菜单集合
     * @return 转化后的菜单集合
     * @throws Exception
     */
    List<SysMenuDTO> menuToTree(List<SysMenuDTO> menuDTOS) throws  Exception;

    /**
     * 根据用户获取菜单权限
     * @param dto
     * @param maId 管理员id
     * @return 该管理员拥有的菜单权限
     * @throws Exception
     */
    List<SysMenuDTO> getMenuByMasterId(SysMenuDTO dto, Integer maId) throws Exception;

    /**
     * 获取拥有的权限字符串
     * @param dto
     * @param menus 当前已有权限的菜单信息
     * @return 处理结果(permissions:权限字符串，serviceNames：服务名)
     * @throws Exception
     */
    Map<String,Object> getPermissions(SysMenuDTO dto, List<SysMenuDTO> menus) throws Exception;

    /**
     * 根据角色id获取菜单信息（hasAuth：是否有该菜单的权限）
     * @param dto
     * @param roId 角色id
     * @return 查询结果
     * @throws Exception
     */
    List<SysMenuDTO> getMenuByRoId(SysMenuDTO dto, Integer roId) throws Exception;
}
